#include<iostream>
#include<fstream>
using namespace std;
#define MAXSIZE 100
#define ERROR 0
typedef struct 
{ 
	int *elem;
	int length;
}List;
int n, m;
void InitList(List &L) //创建顺序表
{
	/********************************************Begin*****************************************/
	L.elem = new int[MAXSIZE];
	L.length = 0;
    /**********************************************End**************************************************/
}
void ListInput(List &L, int n) //顺序表数据的输入
{
	/********************************************Begin*****************************************/
	for(int i = 0; i < n; i++)
	{
		cin >> L.elem[i];
	}
	L.length = n;
    /**********************************************End**************************************************/
}

int ListLength(List L) //求顺序表的长度
{
	return L.length;
}
void GetElem(List L, int i, int &e) //求顺序表的第i个元素，并以e返回
{
	/********************************************Begin*****************************************/
	e = L.elem[i - 1];
    /**********************************************End**************************************************/
}
bool LocateElem(List L, int e) //判断List里有没有e这个元素
{
	/********************************************Begin*****************************************/
	for(int i = 0; i < L.length; i++)
	{
		if(L.elem[i] == e) return true;
	}
	return false;
    /**********************************************End**************************************************/
}
void ListInsert(List &L, int e) //将e插入到List的最后
{
		/********************************************Begin*****************************************/
	L.elem[L.length++] = e;
    /**********************************************End**************************************************/
}
void ListOutput(List L) //输出List
{
	int i;
	for (i = 0; i < L.length; i++)
		cout << L.elem[i] << " ";
	cout << endl;
}
void unionList(List &LA, List &LB) 
{
	/********将所有在线性表LB中但不在LA中的数据元素插入到LA中Begin*****************************************/
	for(int i = 0; i < LB.length; i++)
	{
		if(!LocateElem(LA, LB.elem[i]))
		{
			ListInsert(LA, LB.elem[i]);
		}
	}
    /**********************************************End**************************************************/
} 
int main() 
{
	List LA, LB;
	
	InitList(LA);
	InitList(LB);
	
	scanf("%d", &n);
	scanf("%d", &m);
	
	ListInput(LA, n);

	ListInput(LB, m);

	unionList(LA, LB);

	ListOutput(LA);
	return 0;
}